package com.redepronik.negosys.rrhh.service;

import java.io.Serializable;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.redepronik.negosys.rrhh.dao.ProvinciaDao;
import com.redepronik.negosys.rrhh.entity.Provincia;

@Service
public class ProvinciaServiceImpl implements ProvinciaService, Serializable {

	private static final long serialVersionUID = 1L;

	@Autowired
	private ProvinciaDao provinciaDao;

	public String actualizar(Provincia provincia) {
		if (!provinciaDao.comprobarIndices(Provincia.class, "nombre",
				provincia.getNombre(),
				String.valueOf(provincia.getProvinciaid()))) {
			provinciaDao.actualizar(provincia);
			return "SAVE";
		} else
			return "EXISTE";
	}

	public void eliminar(Provincia provincia) {
		if (provincia.getActivo())
			provincia.setActivo(false);
		else
			provincia.setActivo(true);
		provinciaDao.actualizar(provincia);
	}

	public String insertar(Provincia provincia) {
		if (!provinciaDao.comprobarIndices(Provincia.class, "nombre",
				provincia.getNombre(),
				String.valueOf(provincia.getProvinciaid()))) {
			provincia.setActivo(true);
			provinciaDao.insertar(provincia);
			return "SAVE";
		} else
			return "EXISTE";
	}

	public List<Provincia> obtener() {
		return provinciaDao.obtenerPorHql("select distinct p from Provincia p "
				+ "inner join fetch p.ciudads cd order by p.nombre",
				new Object[] {});
	}

	public Provincia obtenerPorProvinciaId(int provinciaId) {
		return provinciaDao.obtenerPorId(Provincia.class, provinciaId);
	}

}